Ext.onReady(function ()
{
	Ext.QuickTips.init();

	function editForm()
	{
		if (editRoomInfoForm.getForm().isValid())
		{
			var roomid = RoomNameBox.getValue();
			var record = courseGrid.getSelectionModel();
			for (var i = 0; i < courseGrid.getStore().getTotalCount(); i++)
			{
				var urlString = "";
				if (record.isSelected(i))
				{
					urlString = basePath + 'room/SetCourseRoom?rid=' + roomid + '&cid=' + courseGrid.getStore().getAt(i).get('course_id') + '&status=true';
				}
				else
				{
					urlString = basePath + 'room/SetCourseRoom?rid=' + roomid + '&cid=' + courseGrid.getStore().getAt(i).get('course_id') + '&status=false';
				}
				Ext.Ajax.request(
				{
					url : urlString
				}
				);
			}
			Ext.Msg.alert('修改成功！', '已经成功修改！');
			roomGrid.store.removeAll();
			roomGrid.store.reload();
			editWindow.close();
		}
	}

	//获得数据store
	var roomData = Ext.create('Ext.data.Store',
		{
			model : 'RoomModel',
			proxy :
			{
				type : 'ajax',
				url : basePath + 'room/getRoomList',
				reader :
				{
					type : 'json',
					root : 'root'
				}
			},
			autoLoad : true
		}
		);

	//数据填充入combobox
	var RoomNameBox = Ext.create('Ext.form.ComboBox',
		{
			fieldLabel : '实验室:',
			labelWidth : 100,
			width : 400,
			labelAlign : "right",
			emptyText : '请选择要修改的实验室',
			store : roomData,
			queryMode : 'local',
			editable : false,
			name : 'room_id',
			hiddenName : 'room_id',
			displayField : 'name',
			valueField : 'room_id',
			blankText : '不能为空',
			allowBlank : false,
			listeners :
			{
				'select' : function ()
				{
					getChecked(RoomNameBox.getValue()); //获取rid对应实验室
					var index = roomData.find('room_id', RoomNameBox.getValue());
				}
			}
		}
		);

	function getRoomAdmin(id)
	{
		Ext.Ajax.request(
		{
			url : basePath + 'room/getRoomAdmin?rid=' + id,
			method : 'POST',
			success : function (response)
			{
				//将返回的结果转换为json对象，注意extjs4中decode函数已经变成了：Ext.JSON.decode
				var json = Ext.JSON.decode(response.responseText); //获得后台传递json
				var index = TeacherData.find('user_id', json.admin_user_id);
				TeacherNameBox.select(TeacherData.getAt(index));
			}
		}
		);
	}

	function getChecked(id)
	{
		Ext.Ajax.request(
		{
			url : basePath + 'room/GetCRChecked?rid=' + id,
			method : 'POST',
			success : function (response)
			{
				//将返回的结果转换为json对象，注意extjs4中decode函数已经变成了：Ext.JSON.decode
				var json = Ext.JSON.decode(response.responseText); //获得后台传递json
				courseGrid.getSelectionModel().deselectAll();
				for (x in json)
				{
					var index = CourseData.find('course_id', json[x].cid);
					courseGrid.getSelectionModel().select(index, true, false);
				}
			}
		}
		)
	}

	//获得数据store
	var CourseData = Ext.create('Ext.data.Store',
		{
			model : 'CourseModel',
			proxy :
			{
				type : 'ajax',
				url : basePath + 'course/GetAllVirtualCourse',
				reader :
				{
					type : 'json',
					root : 'root'
				}
			},
			autoLoad : true
		}
		);

	var columns = [
		{
			header : '名称',
			dataIndex : 'name',
			width : '30%'
		},
		{
			header : '描述',
			dataIndex : 'information',
			width : '70%'
		}
	];

	var courseGrid = new Ext.grid.GridPanel(
		{
			title : '开设虚拟实验列表:',
			anchor : '100%',
			frame : false,
			selModel : new Ext.selection.CheckboxModel(
			{
				checkOnly : true
			}
			),
			store : CourseData,
			enableHdMenu : false,
			autoScroll : true,
			autoHeight : true,
			enableColumnHide : false,
			columnLines : true,
			columns : columns,
			stripeRows : true,
			loadMask : true
		}
		);

	var roomColumns = [
		{
			header : '实验室名称',
			dataIndex : 'name',
			width : '20%'
		},
		{
			header : '实验室负责人',
			dataIndex : 'admin_name',
			width : '20%'
		},
		{
			header : '实验室描述',
			dataIndex : 'description',
			width : '30%'
		},
		{
			header : '拥有计算机数量',
			dataIndex : 'num_of_computer',
			width : '30%'
		}
	];

	var roomGrid = new Ext.grid.GridPanel(
		{
			title : '查看实验室列表',
			frame : false,
			selModel : new Ext.selection.RowModel(),
			store : roomData,
			enableHdMenu : false,
			enableColumnHide : false,
			columnLines : true,
			columns : roomColumns,
			stripeRows : true,
			loadMask : true,
			autoScroll : true,
			renderTo : 'showVirtualRoomDiv',
			listeners :
			{
				'select' : function (selModel, record, index, eOpts)
				{
					selRecord = record;
				}
			},
			buttons : [
				{
					text : '编辑',
					handler : function ()
					{
						editWindow.show();
						RoomNameBox.select(selRecord);
						getChecked(selRecord.get('room_id'));
						//获得当前选中记录的index
					}
				}
			]
		}
		);

	var tmp = Ext.getCmp('editRoomInfoForm');
	if (tmp != null)
		tmp.destroy();
	var editRoomInfoForm = Ext.create("Ext.form.FormPanel",
		{
			title : '修改实验室信息',
			frame : false,
			defaultType : 'textfield',
			autoScroll : true,
			defaults :
			{
				labelWidth : 100,
				width : 400,
				labelAlign : "right"
			},
			items : [
				RoomNameBox,
				courseGrid
			],
			buttons : [
				{
					text : '确定修改',
					handler : function ()
					{
						editForm();
					}
				},
				{
					text : '取消修改',
					handler : function ()
					{
						editWindow.close();
					}
				}
			]
		}
		);

	editWindow = Ext.create('Ext.window.Window',
		{
			title : '编辑实验室',
			height : 600,
			width : 800,
			layout : 'fit',
			modal : true,
			closeAction : 'hide',
			items : [editRoomInfoForm]
		}
		);
}
);
